The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
In today's high performance internetworks, predictable performance of business-critical applications is needed. Further, real-time applications (e.g., voice, video-conferencing, streaming audio or streaming video), for which minimizing data transmission latency is critical, need to be integrated with bursty data services. As a result, differentiated handling of network traffic is needed.
Quality of Service (“QoS”) enables complex networks to control and predictably service a variety of applications. The goal of QoS is to provide consistent, predictable network services for different kinds of network traffic by delivering dedicated bandwidth, controlling jitter and latency, managing congestion and improving traffic flow efficiency. Bandwidth is related to the amount of data that can be transmitted in a unit of time and is often expressed as a number of binary digits (bits) per second. Network latency is a measure of the delay between when a data packet is placed on the network and when it arrives at its destination; jitter refers to variations in network latency.
QoS is a set of capabilities that allow the delivery of differentiated services for network traffic, thereby providing better service for selected network traffic. For example, with QoS, bandwidth of critical traffic can be increased, bandwidth for non-critical traffic can be limited, and consistent network response can be provided. This allows expensive network connections to be used more efficiently, and a network service provider to establish service level agreements with its customers.
QoS typically is implemented in software tools that execute in network devices and management stations. QoS tools generally are separated into three categories: classification, queuing and network provisioning. Classification tools mark a packet or flow with a specific priority. This marking establishes a trust boundary that must be enforced. Queuing tools assign a packet or flow to one of several queues, based on classification, for appropriate treatment in the network. Network provisioning tools accurately calculate the required bandwidth needed for voice conversations, all data traffic, any video applications and necessary link management overhead such as routing protocols, and configure network elements with appropriate QoS parameters.
For effective quality of service treatment, policies must be applied by all intermediate network elements in a path from sender to receiver for a particular message flow. A network element is a component of a network, including a device (such as a router, switch, or hub), a network interface (which may or may not map to a physical port) on such a device, and a virtual local area network (VLAN) which is a group of devices that are involved with passing data packets tagged with a VLAN identifier.
A QoS policy is a conditional statement that includes a set of conditions (“filters”) on a data packet and a set of one or more QoS actions to perform on data packets passing into or out of a network element if the data packet satisfies the set of conditions. QoS actions include packet coloring, traffic shaping, priority queuing, custom queuing, limiting, and fragmentation, among other actions known in the art. Coloring assigns a relative importance to a packet. Shaping smoothes the rate of flow of outbound data packets by temporarily saving some packets in buffers until those packets can be transmitted within the specified rate. Queuing assigns outbound data packets to different queues that are given different precedence in the face of network congestion. Limiting limits the bandwidth available for outbound data packets. Fragmentation breaks a large data packet into several smaller data packets so that latency-critical data packets can be interleaved among the smaller fragments without waiting for the large data packet to be transmitted in its entirety.
Accordingly, various QoS management systems are now available. Certain leading systems of this type enable a user or administrator to create and store abstract QoS policies in terms of collections of rules and policy objects. An example of such a system is QoS Policy Manager, commercially available from Cisco Systems, Inc.
QoS tools are important in the management of internet protocol (“IP”) networks for real-time applications. Real-time applications, such as voice applications like IP telephony (IPT), have different characteristics and requirements from those of other data applications. Real-time applications tolerate minimal delay and jitter affecting delivery of data packets by network elements. Voice traffic is also intolerant of lost packets (which causes voice clipping and skips) and unreasonably delayed packets (which can cause either voice quality degradation due to end-to-end voice latency or packet loss if delay is variable). Packet loss, delay and jitter all contribute to degraded voice quality. QoS tools available for use in networks are mechanisms to increase data quality on data networks for real-time applications by configuring network elements to result in decreasing dropped data packets for the real-time applications during times of network congestion and by minimizing both the delay and the jitter encountered in a given connection for real-time applications.
In past approaches, configuring QoS for real-time applications on an enterprise network has been difficult. The user has needed to know what interfaces to configure, what QoS policy to apply on each interface, and which QoS tools to use on each interface to implement each policy. The user has needed to enable QoS not just on a few wide-area network (WAN) links, but rather throughout the enterprise, including local-area networks (LANs). The QoS tools that have been available have varied with different devices, device models, and device operating system versions. After selecting the QoS tools, the user has needed to translate the configuration recommendations provided by the QoS tools into the command line interface (“CLI”) commands understood by each device.
In the past, many of these tasks have been done manually for a particular device. Design guides, such as the Architecture for Voice, Video and Integrated Data (AVVID) QoS Design Guide, commercially available from Cisco Systems, Inc., provide answers as to what QoS to use and where, in order to manually configure QoS across a network. However, the user still needs to use the telnet protocol to send messages to each and every device and set the recommended commands. This is tedious, time-consuming and prone to human error, for example, from typographical errors inadvertently included in the configuration commands.
Based on the foregoing, there is a clear need for a method which will make the process of configuring QoS for voice or other real-time applications easier, such that the user does not need to do all the work in defining all the network elements to configure for real-time applications, to know what policy to implement at each network element, to know what QoS tools to use to establish each policy at each network element, and to translate each QoS tools into CLI commands.
Further, there is a specific need for a method that will enable new and expert users of packet voice networks to configure the QoS in their network for handling packet voice traffic in a rapid manner, without involving such users in arcane details underlying QoS techniques and implementations.